package com.mi.system.vo;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.mi.common.core.jackson.LongCollectionSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 * Role VO
 *
 * @author jin_huaquan
 * @version 1.0
 * @date 2021/11/2 9:21
 */
@ApiModel(value = "RoleVO对象", description = "角色信息")
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class RoleVO implements Serializable {

    @ApiModelProperty(value = "角色ID", required = true, dataType = "java.lang.String")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    @ApiModelProperty(value = "角色名称", required = true)
    private String name;

    @ApiModelProperty(value = "角色标识", required = true)
    private String roleCode;

    @ApiModelProperty("角色描述")
    private String remarks;

    @ApiModelProperty(value = "创建时间", required = true)
    private LocalDateTime createTime;

    @ApiModelProperty(value = "菜单ID集合", required = true)
    @JsonSerialize(using = LongCollectionSerializer.class)
    private List<Long> menuIds;
}
